package com.realone.packman.codec.decoder.vo;

/**
 * BMS 告警应答响应
 *
 * @author hugx
 * @create 2018-09-17 10:16
 */
public class BmsDecoderDataVoWarning extends BmsDecoderDataVo {

    private short sequenceNum; //告警顺序号
    private byte stateCode; //告警状态编码，0=告警结束，1=告警开始
    private byte level; // 告警等级 1=严重告警，2=一般告警，3=事件

    /**
     * 告警定位，定义为：
     * 0x01-0x0e=单个电池
     * 0x0f=电池包
     * 0x11-0x0x1f=温度探测点。其中电池包为0x11-0x14，bms板为0x15，电池仓为0x16
     * 0x21-0x2f=电流探测点。其中主回路电路为0x2f，其他未定义
     */
    private byte loc;

    private double info; //告警信息

    private long time;

    public BmsDecoderDataVoWarning(Integer classType) {
        super(classType);
    }


    /**
     * 告警顺序号
     * @return
     */
    public short getSequenceNum() {
        return sequenceNum;
    }

    /**
     * 告警顺序号
     * @param sequenceNum
     */
    public void setSequenceNum(short sequenceNum) {
        this.sequenceNum = sequenceNum;
    }

    /**
     * 告警状态编码
     * @return 0=告警结束，1=告警开始
     */
    public byte getStateCode() {
        return stateCode;
    }

    /**
     *  告警状态编码
     * @param stateCode 0=告警结束，1=告警开始
     */
    public void setStateCode(byte stateCode) {
        this.stateCode = stateCode;
    }

    /**
     * 告警等级
     * @return  1=严重告警，2=一般告警，3=事件
     */
    public byte getLevel() {
        return level;
    }

    /**
     * 告警等级
     * @param level  1=严重告警，2=一般告警，3=事件
     */
    public void setLevel(byte level) {
        this.level = level;
    }

    /**
     * 告警定位，定义为：
     *      * 0x01-0x0e=单个电池
     *      * 0x0f=电池包
     *      * 0x11-0x0x1f=温度探测点。其中电池包为0x11-0x14，bms板为0x15，电池仓为0x16
     *      * 0x21-0x2f=电流探测点。其中主回路电路为0x2f，其他未定义
     * @return
     */
    public byte getLoc() {
        return loc;
    }

    /**
     * 告警定位，定义为：
     *      * 0x01-0x0e=单个电池
     *      * 0x0f=电池包
     *      * 0x11-0x0x1f=温度探测点。其中电池包为0x11-0x14，bms板为0x15，电池仓为0x16
     *      * 0x21-0x2f=电流探测点。其中主回路电路为0x2f，其他未定义
     * @param loc
     */
    public void setLoc(byte loc) {
        this.loc = loc;
    }

    /**
     * 告警信息
     * 注：告警信息字段，根据不同的告警Id定义不同的内容参考《RLB-14MS-ERC-DCA通信协议》文档中2.2.2	告警帧 部分
     * @return
     */
    public double getInfo() {
        return info;
    }

    /**
     * 告警信息
     * @param info
     */
    public void setInfo(double info) {
        this.info = info;
    }

    /**
     * 告警解析时间
     * @return
     */
    public long getTime() {
        return time;
    }

    /**
     * 告警解析时间
     * @param time
     */
    public void setTime(long time) {
        this.time = time;
    }
}
